
/**
 * 对象转url参数
 * @param {*} data,对象
 * @param {*} isPrefix,是否自动加上"?"
 */
export function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {
	let prefix = isPrefix ? '?' : ''
	let _result = []
	if (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets';
	for (let key in data) {
			let value = data[key]
			// 去掉为空的参数
			if (['', undefined, null].indexOf(value) >= 0) {
					continue;
			}
			// 如果值为数组，另行处理
			if (value.constructor === Array) {
					// e.g. {ids: [1, 2, 3]}
					switch (arrayFormat) {
							case 'indices':
									// 结果: ids[0]=1&ids[1]=2&ids[2]=3
									for (let i = 0; i < value.length; i++) {
											_result.push(key + '[' + i + ']=' + value[i])
									}
									break;
							case 'brackets':
									// 结果: ids[]=1&ids[]=2&ids[]=3
									value.forEach(_value => {
											_result.push(key + '[]=' + _value)
									})
									break;
							case 'repeat':
									// 结果: ids=1&ids=2&ids=3
									value.forEach(_value => {
											_result.push(key + '=' + _value)
									})
									break;
							case 'comma':
									// 结果: ids=1,2,3
									let commaStr = "";
									value.forEach(_value => {
											commaStr += (commaStr ? "," : "") + _value;
									})
									_result.push(key + '=' + commaStr)
									break;
							default:
									value.forEach(_value => {
											_result.push(key + '[]=' + _value)
									})
					}
			} else {
					_result.push(key + '=' + value)
			}
	}
	return _result.length ? prefix + _result.join('&') : ''
}

export function validateIDCard(idCard) {
    // 身份证号码正则表达式，18位或者15位
    var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
    
    if (!reg.test(idCard)) {
        return false; // 格式错误，返回false
    }
    
    // 获取出生日期
    var birthday = '';
    if (idCard.length === 15) {
        birthday = '19' + idCard.substr(6, 6);
    } else if (idCard.length === 18) {
        birthday = idCard.substr(6, 8);
    }
    birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");
    
    // 获取性别
    var gender = parseInt(idCard.substr(idCard.length - 2, 1)) % 2 === 1 ? '1' : '2';
    
    return {
        valid: true,
        birthday: birthday,
        gender: gender
    };
}

export function validatePhone(phoneNumber) {
    // 定义手机号正则表达式，支持中国大陆11位手机号码格式
    var reg = /^1[3456789]\d{9}$/;
    
    // 使用正则表达式测试手机号
    if (reg.test(phoneNumber)) {
        return true; // 符合手机号格式，返回true
    } else {
        return false; // 不符合手机号格式，返回false
    }
}
